BEGIN;
CREATE TABLE "campeonatos_campeonato" (
    "id" integer NOT NULL PRIMARY KEY,
    "nome" varchar(250) NOT NULL,
    "start" datetime NOT NULL,
    "end" datetime NOT NULL,
    "real_start" datetime,
    "real_end" datetime
)
;
CREATE TABLE "campeonatos_rodada" (
    "id" integer NOT NULL PRIMARY KEY,
    "numero" smallint NOT NULL,
    "turno" smallint NOT NULL,
    "campeontato_id" integer NOT NULL REFERENCES "campeonatos_campeonato" ("id"),
    UNIQUE ("numero", "turno", "campeontato_id")
)
;
CREATE TABLE "campeonatos_partida" (
    "id" integer NOT NULL PRIMARY KEY,
    "start" datetime NOT NULL,
    "end" datetime NOT NULL,
    "real_start" datetime,
    "real_end" datetime,
    "estadio_id" integer NOT NULL REFERENCES "estadios_estadio" ("id"),
    "rodada_id" integer NOT NULL REFERENCES "campeonatos_rodada" ("id"),
    "pagantes" integer,
    "renda" decimal,
    "clube_mandante_id" integer NOT NULL REFERENCES "clubes_clube" ("id"),
    "clube_visitante_id" integer NOT NULL REFERENCES "clubes_clube" ("id")
)
;
CREATE TABLE "campeonatos_jogadordepartida" (
    "id" integer NOT NULL PRIMARY KEY,
    "partida_id" integer NOT NULL REFERENCES "campeonatos_partida" ("id"),
    "jogador_id" integer NOT NULL REFERENCES "jogadores_jogador" ("id"),
    "numero" smallint NOT NULL,
    "tempo_entrada" smallint,
    "minuto_entrada" integer,
    "tempo_saida" smallint,
    "minuto_saida" integer
)
;
CREATE INDEX "campeonatos_rodada_a8ef71c6" ON "campeonatos_rodada" ("campeontato_id");
CREATE INDEX "campeonatos_partida_ab404178" ON "campeonatos_partida" ("estadio_id");
CREATE INDEX "campeonatos_partida_a0309a81" ON "campeonatos_partida" ("rodada_id");
CREATE INDEX "campeonatos_partida_9e931196" ON "campeonatos_partida" ("clube_mandante_id");
CREATE INDEX "campeonatos_partida_9bfab5f6" ON "campeonatos_partida" ("clube_visitante_id");
CREATE INDEX "campeonatos_jogadordepartida_71110e2" ON "campeonatos_jogadordepartida" ("partida_id");
CREATE INDEX "campeonatos_jogadordepartida_ad7647d7" ON "campeonatos_jogadordepartida" ("jogador_id");
CREATE TABLE "clubes_clube" (
    "id" integer NOT NULL PRIMARY KEY,
    "nome" varchar(250) NOT NULL,
    "nome_completo" varchar(250) NOT NULL,
    "sigla" varchar(3) NOT NULL,
    "estado_id" integer NOT NULL REFERENCES "address_state" ("id"),
    "cidade_id" integer NOT NULL REFERENCES "address_city" ("id")
)
;
CREATE INDEX "clubes_clube_c3dd818c" ON "clubes_clube" ("estado_id");
CREATE INDEX "clubes_clube_d242d3ce" ON "clubes_clube" ("cidade_id");
CREATE TABLE "estadios_estadio" (
    "id" integer NOT NULL PRIMARY KEY,
    "nome" varchar(250) NOT NULL,
    "estado_id" integer NOT NULL REFERENCES "address_state" ("id"),
    "cidade_id" integer NOT NULL REFERENCES "address_city" ("id")
)
;
CREATE INDEX "estadios_estadio_c3dd818c" ON "estadios_estadio" ("estado_id");
CREATE INDEX "estadios_estadio_d242d3ce" ON "estadios_estadio" ("cidade_id");
CREATE TABLE "jogadores_jogador" (
    "id" integer NOT NULL PRIMARY KEY,
    "nome" varchar(250) NOT NULL,
    "nome_completo" varchar(250) NOT NULL,
    "data_nascimento" date NOT NULL,
    "clube_id" integer NOT NULL REFERENCES "clubes_clube" ("id"),
    "data_contrato" date,
    "numero" smallint NOT NULL,
    UNIQUE ("clube_id", "numero")
)
;
CREATE INDEX "jogadores_jogador_dbc5891c" ON "jogadores_jogador" ("clube_id");
CREATE TABLE "address_state" (
    "id" integer NOT NULL PRIMARY KEY,
    "name" varchar(180) NOT NULL,
    "uf" varchar(4) NOT NULL
)
;
CREATE TABLE "address_city" (
    "id" integer NOT NULL PRIMARY KEY,
    "name" varchar(180) NOT NULL,
    "state_id" integer NOT NULL REFERENCES "address_state" ("id")
)
;
CREATE INDEX "address_city_b9608dc2" ON "address_city" ("state_id");
COMMIT;
